Autodetection of a PCI express device operating at a wireless RF mitigation frequency

ABSTRACT

A computer system that detects for a PCI Express compliant endpoint device is described. Specifically, the computer system clocks transmit and receive circuits at a first frequency and initiates a training sequence. If the endpoint device successfully trains at the first frequency, the endpoint device is PCI Express compliant. Otherwise, the computer system initiates another training sequence at a second frequency.

FIELD

The present invention pertains to the field of computer system design. More particularly, the present invention relates to a root port that detects whether an attached device is operating at a PCI Express frequency or an alternative wireless extension frequency.

BACKGROUND

Peripheral Component Interconnect (PCI) is a computer bus design standard for connecting peripheral components to computers. A PCI bus typically routes signals between a central processing unit (CPU), various other chips on the motherboard, and cards that are plugged into PCI bus slot connectors. The PCI bus, however, is independent of the CPU chip implemented in a computer system. Thus, the PCI bus is adapted for use in many different kinds of computers or other high-tech hardware. Earlier versions of the PCI standard included PCI 2.2 and PCI-X.

PCI Express is the third generation of PCI architecture. PCI Express offers higher input/output (I/O) bandwidth than its predecessors. Traditional PCI attributes, such as its usage model and software interfaces, are maintained. However, the previous parallel bus implementation has been replaced by a link-to-link serial interface. Further, a split-transaction protocol is implemented with attributed packets that are prioritized and optimally delivered to their target.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an embodiment of a computer system that supports both PCI Express compliant devices and non-PCI Express compliant devices.

FIG. 2 is an embodiment of a flowchart to auto-detect a non-PCI Express compliant wireless extension device.

FIG. 3 is a block diagram of an embodiment of a device for detecting PCI Express compliant and non-PCI compliant devices.

DETAILED DESCRIPTION

In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the invention. However, it will be understood by those skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known methods, procedures, components and circuits have not been described in detail so as not to obscure the present invention.

The PCI Express architecture is typically composed of a plurality of layers. For example, a software layer generates PCI Express read and write requests. A transaction layer, coupled to the software layer, transports the software-generated requests to I/O devices using a packet-based, split-transaction protocol. A link layer coupled to the transaction layer adds sequence numbers and a cyclical redundancy check (CRC) number to the packets to create a highly reliable data transfer mechanism. Finally, a physical layer coupled to the link layer transports the packets to another PCI Express device.

The PCI Express 1.0a specification supports a frequency of 2.5 gigahertz (GHz). This frequency may be referred to as the Gen1 frequency. The Gen1 frequency is similar to the wireless 2.4 GHz spectrum. As a result, the Gen1 frequency potentially causes radio frequency (RF) interference with wireless communications.

To reduce the RF interference of a wireless endpoint, a mechanism in a PCI Express port may reduce the data transfer rate. As an example, the data transfer rate is reduced to 833 megahertz (MHz), or one-third the Gen1 frequency. A mechanism to reduce the data transfer rate is described in more detail in co-pending application with Ser. No. 10/629,967 entitled, “RF Interference Mitigation by Spectral Shaping Using Adaptive Data Rate Adjustment for PCI Express Interconnect.” The 833 MHz transfer rate is also known as the wireless extension frequency.

By definition of the PCI Express 1.0a specification, a computer system that communicates only with a device that operates at the wireless extension frequency is not PCI Express compliant. To maintain PCI Express compliance, a computer system that is able to communicate with non-PCI Express compliant devices also communicates with PCI Express compliant devices.

FIG. 1 depicts a PCI Express compliant computer system that is able to communicate with both a device operating at the Gen1 frequency and a device operating at the wireless extension frequency. The computer system 100 of FIG. 1 comprises a processor 110, a chipset 120, and a memory 150. Computer system 100, which refers to processor 110, chipset 120, and memory 150, is coupled to device 160. However, a computer system may include device 160.

In one embodiment, device 160 is either a PCI Express compliant or non-PCI Express compliant device. Coupling of device 160 to chipset 120 may comprise physically coupling device 160 to chipset 120 or wirelessly coupling device 160 to chipset 120. As an example, chipset 120 has a transmitter to transmit data to and a receiver to receive data from coupled device 160. Device 160, as illustrated, further comprises port 170, which is discussed in more detail below.

Chipset 120 is coupled to processor 110, memory 150, and device 160. Chipset 120 is illustrated as a single block; however, chipset 120 is not so limited. In fact, often chipset 120 comprises a plurality of controller hubs or integrated circuits. As a specific example, chipset 120 comprises a memory controller hub (MCH) coupled to processor 110 and memory 150, as well as a interconnect controller hub (ICH), also referred to as an input/output hub (IOH), coupled to the MCH and I/O devices through a bus, such as PCI Express. Using typical memory bus protocols, chipset 120 delivers data between the processor 110 and memory 150.

Also shown in chipset 120 is PCI Express switch 130. In one embodiment, PCI Express switch 130 adjusts a frequency of the data transmitted by a transmitter present in chipset 120. Moreover, the PCI Express switch 130 may adjust the clock frequency of its receiver. For example, the switch 130 adjusts the receiver clock from the Gen1 frequency to the wireless extension frequency.

In one embodiment, root port 140, also illustrated in chipset 120, attempts to establish communication with a connected device at the Gen1 frequency. If the communication is unsuccessful after N attempts, root port 140 auto-detects for a connected device operating at a wireless extension frequency. The root port 140 and PCI Express switch 130 may be part of the physical layer or any other layer present in a PCI Express bus/protocol.

FIG. 2 depicts a flowchart of an algorithm for auto-detecting a connected device operating at a wireless extension frequency. In one embodiment, the algorithm is implemented by root port 140. As stated above root port 140 is illustrated in chipset 120; however, root port 140 is not so limited, as root port 140 may also be present in a separate controller hub, integrated circuit, switch, or bridge in the hierarchical connection of a peripheral bus.

In operation 210, root port 140 attempts to “train” a connected endpoint device at a first frequency. In a first embodiment, data is transmitted at a first frequency. As another example, in addition to transmitting data at the first frequency, the root port receiver is also clocked at the first frequency. As a specific example, the first frequency is the Gen1 frequency. Training may comprise a “bit-lock” and a “K-align lock” of the physical layers of each device. However training is not so limited. For example, training may also comprises exchanging training sequences. Bit-lock refers to the ability of the receiver to properly lock onto specific bits within a bit-stream by identifying bit transition edges. K-align lock refers to the ability of the receiver to determine symbol boundaries within a bit pattern.

If root port 140 is able to train the endpoint device within X attempts in operation 220, the endpoint device is PCI Express compliant and the link negotiation is terminated in operation 270. The number of attempts, X, may be a software programmable value with a hardware default. Furthermore, X may be an integer greater than or equal to one.

However, if root port 140 is unable to train the endpoint device within X attempts, the receiver is clocked at a second frequency in operation 230. The receiver then attempts to K-align at the second frequency. As a specific example, root port 140 continues to transport/transmit data at the first frequency. The receiver may attempt to K-align at the second frequency for Y attempts in operation 240. The number of attempts, Y, may be a software programmable value with a hardware default, as well as an integer equal to or greater than one. Both the number of attempts X and Y may also be a predetermined number of attempts in hardware or in software, as well as any combination of hardware and software.

Yet, if the receiver fails to K-align at the second frequency in operation 240, the root port 140 returns to operation 210 and again attempts to train the endpoint device at the first frequency.

On the other hand, if the receiver successfully K-aligns at the second frequency, the transmitter is adjusted to transmit data at the second frequency in operation 250. Root port 140 next attempts to train the endpoint device within Z attempts at the second frequency in operation 260. Thus, the receiver attempts to bit-lock, i.e. properly lock, onto specific bits within a bit-stream, and to K-align lock to determine symbol boundaries within a bit pattern. As stated above for X and Y, Z may also be a predetermined or programmable integer implemented in hardware, software, or firmware.

Nevertheless, if the receiver fails to train the endpoint device at the second frequency within Z attempts in operation 260, the root port 140 returns to operation 210 and again attempts to train the endpoint device at the first frequency. Otherwise, if the receiver successfully trains at the second frequency within Z attempts, the link negotiation is terminated in operation 270.

FIG. 3 depicts a block diagram of an embodiment of a device for detecting PCI Express compliant and non-PCI compliant devices. FIG. 3 comprises a wireless extension state machine 305, a receive circuit interface 310, a receive physical interface 320, a clock divider 330, a multiplexer 335, a link training and status state machine 340, a transmit circuit interface 350, a transmit physical layer 360, a phase locked loop 365, a clock divider 370, and a multiplexer 375.

Receive circuit interface 310 is coupled to receive physical layer 320, clock divider 330, and multiplexer 335. Clock divider 330 is coupled to multiplexer 335. Receive physical layer 320 is coupled to link training and status state machine 340. Link training and status state machine 340 and multiplexer 335 are coupled to wireless extension state machine 305. Phase locked loop 365 is coupled to clock divider 370. Clock divider 370 is coupled to multiplexer 375. Multiplexer 375 is coupled to link training and status state machine 340.

In one embodiment, receive circuit interface 310 receives a signal from a wireless extension endpoint. In another embodiment, receive circuit interface 310 receives a signal from a PCI Express endpoint. Receive circuit interface 310 may comprise an I/O buffer. The signal input to receive circuit interface 310 may comprise a clock and a data signal. In one embodiment the clock signal is extracted from the data signal. Receive circuit interface 310 may extract the clock from the signal and transmit the clock to clock divider 330 and multiplexer 335. Receive circuit interface 310 transmits the data to receive physical layer 320 for processing. The data is subsequently passed from the receive physical layer 320 to link training and status state machine 340 and to the link layer.

The clock extracted from the signal received by the endpoint device may have a Gen1 frequency. As a specific example, clock divider 330 divides the clock by three. Thus, the inputs to the multiplexer 335 may be a Gen1 frequency and a wireless extension frequency. The wireless extension state machine 305 transfers a signal to the multiplexer 335 to select whether the Gen1 frequency or the wireless extension frequency is output from the multiplexer 335. For one embodiment, the wireless extension state machine 305 selects the Gen1 frequency, if the wireless extension state machine 305 determines that a PCI Express device is coupled to the receive circuit interface 310 and the transmit circuit interface 350. However, the wireless extension frequency may be selected by the wireless extension state machine 305, if the wireless extension state machine 305 determines that a wireless extension device is coupled to the receive circuit interface 310 and the transmit circuit interface 350.

Besides selecting the receiver clock, in one embodiment, the wireless extension state machine 305 also selects the transmitter clock. It is apparent that another state machine may select the transmitter clock. Wireless extension state machine 305 provides a select signal to multiplexer 375. Multiplexer 375 receives a first clock and a second clock as inputs. A clock having a Gen1 frequency may be generated by phase locked loop 365. The clock having a Gen1 frequency is provided to the first input of multiplexer 375. The second input to multiplexer 375 is provided by the output of clock divider 370. Consequently, in a specific embodiment, the two inputs to multiplexer 335 are the Gen1 frequency and the wireless extension frequency, the Gen1 frequency generated by a PLL and the wireless extension frequency being based on the Gen1 frequency, i.e. the Gen1 frequency divided by 3.

In another embodiment, the wireless extension state machine 305 initially selects the Gen1 frequency for both the receiver and the transmitter clocks. However, the wireless extension frequency or other frequency may be selected as the default for the receive and transmitter, as well as selecting the receiver and transmitter clocks individually. Receive physical layer 320 receives a clock having a Gen1 frequency. Receive physical layer 320 also receives data from receive circuit interface 310. The data is passed to link training and status state machine 340 at the selected frequency rate.

Similarly, transmit physical layer 360 receives a clock having a Gen1 frequency. Data is transmitted from the link layer to the physical layer, which may include status state machine 340. Moreover, data is transmitted to the endpoint device at the Gen1 frequency. As an example, data transmitted to the endpoint device is generated by the link layer. Transmit circuit interface 350 may comprise an I/O buffer to transmit the data to the endpoint device.

After receiving data from the endpoint device, receive physical layer 320 and link training and status state machine 340 attempt to train the endpoint device at the Gen1 frequency. Training is initiated by link training and status state machine 340. If the receive physical layer 320 and link training and status state machine 340 are successful in training the endpoint device at the Gen1 frequency, the link training and status state machine 340 provides a signal to the wireless extension state machine 305 to let the wireless extension state machine 305 know that the endpoint device is PCI Express compliant. As a result, wireless extension state machine 305 will continue to select clocks having Gen1 frequencies for multiplexers 335 and 375.

However, if receive physical layer 320 and link training and status state machine 340 fail to train the endpoint device at the Gen1 rate, wireless extension state machine 305 may select the wireless extension clock input for multiplexer 335. Receive physical layer 320 and link training and status state machine 340 may then attempt to K-align the data. For example, receive physical layer 320 may determine symbol boundaries within the bit pattern by looking for a COM symbol. The COM symbol may be a unique K-code character within a bit-sequence. If receive physical layer 320 and link training and status state machine 340 successfully K-align the data, the link training and status state machine 340 may select the wireless extension clock for multiplexer 375 and attempt to train the endpoint device at the wireless extension rate.

In the foregoing specification the invention has been described with reference to specific exemplary embodiments thereof. It will, however, be evident that various modification and changes may be made thereto without departure from the broader spirit and scope of the invention as set forth in the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative rather than restrictive sense. 

1. A computer system, comprising: a processor; and a chipset coupled to the processor, the chipset to support communication with a PCI Express compliant device at a first frequency, wherein the chipset is to communicate with a device at a second frequency, if the chipset fails to communicate with the device at the first frequency.
 2. The computer system of claim 1, wherein the chipset comprises a switch to choose between transmitting data at the first frequency and transmitting data at the second frequency.
 3. The computer system of claim 1, wherein the switch comprises a root port that implements an algorithm to auto-detect for a non-PCI Express compliant device to communicate with at the second frequency.
 4. The computer system of claim 1, wherein the first frequency is 2.5 gigahertz.
 5. The computer system of claim 1, wherein the second frequency is one-third the speed of the first frequency.
 6. A computer system, comprising: a microprocessor; a controller hub coupled to the microprocessor; and a device wirelessly coupled to the controller hub; the controller hub having a root port with a transmitter and a receiver, wherein the root port attempts to identify bit transition edges and determine symbol boundaries at a first frequency of data communicated by the device, and wherein upon failing to identify bit transition edges and determine symbol boundaries at the first frequency, the root port steers the receiver to attempt to determine symbol boundaries at a second frequency.
 7. The computer system of claim 6, wherein the controller hub further comprises: a phased locked loop to generate a first clock signal at the first frequency; a clock divider to divide the first clock signal by an integer to generate a second clock signal at the second frequency; a wireless extension state machine to provide a first signal upon failing to identify bit transition edges and determine symbol boundaries at the first frequency; and a multiplexer to select between the first and second clock frequency for at least the receiver, wherein the first clock signal is selected by default and the second clock signal is selected if the first signal is provide by the wireless extension state machine.
 8. The computer system of claim 6, wherein the first frequency is a multiple of 2.5 GHz and the second frequency is ⅓ of the first frequency.
 9. The computer system of claim 6, wherein if the receiver determines symbol boundaries at the second frequency, the transmitter is steered to the second frequency.
 10. An apparatus, comprising: a receive circuit interface to receive data; a receive physical layer coupled to the receive circuit interface to look for bit patterns; and a first state machine coupled to the receive physical layer to detect an endpoint device connected to the receive circuit interface.
 11. The apparatus of claim 10, further comprising: a second state machine coupled to the first state machine to select a first input clock for the receive physical layer.
 12. The apparatus of claim 11, wherein the second state machine selects a first input clock for a transmit physical layer.
 13. The apparatus of claim 12, wherein a transmit circuit interface is coupled to the transmit physical layer to transmit data to the endpoint device.
 14. The apparatus of claim 10, wherein the first state machine determines whether the endpoint device is PCI Express compliant.
 15. The apparatus of claim 14, wherein the second state machine selects a second input clock for the receive physical layer if the endpoint device is not PCI Express compliant.
 16. The apparatus of claim 15, wherein the receive physical layer attempts to determine symbol boundaries with a data bit pattern at a frequency of the second input clock.
 17. The apparatus of claim 16, wherein the second state machine selects a second input clock for the transmit physical layer if the receive physical layer determines symbol boundaries with the data bit pattern at the frequency of the second input clock.
 18. The apparatus of claim 17, wherein the first state machine determines whether the endpoint device is operating at 833 megahertz frequency.
 19. A method, comprising: transmitting data from a transmitter in a PCI Express port at a first frequency; clocking a receiver at the first frequency; attempting to lock onto specific bits within a bit-stream and to identify symbol boundaries within a bit pattern received by the receiver at a first frequency; and clocking the receiver at a second frequency, if the receiver does not lock onto specific bits within the bit-stream and the receiver does not identify symbol boundaries within the bit pattern after N attempts, wherein N is an integer greater than one.
 20. The method of claim 19, further comprising completing link negotiation, if the receiver locks onto specific bits within a bit-stream and the receiver identifies symbol boundaries within a bit pattern received by the receive.
 21. The method of claim 19, wherein symbol boundaries within a bit pattern are determined by identifying a unique symbol.
 22. The method of claim 19, further comprising: attempting to determine symbol boundaries within a bit pattern at the second frequency.
 23. The method of claim 22, further comprising: attempting to determine symbol boundaries within a bit pattern at the first frequency, if the attempts to determine symbol boundaries within a bit pattern at the second frequency were not successful within N attempts; and transmitting data from the transmitter at the second frequency, if the attempts to determine symbol boundaries within a bit pattern at the second frequency were successful.
 24. The method of claim 23, further comprising: executing a training sequence at the second frequency.
 25. The method of claim 24, further comprising: executing a training sequence at the first frequency, if the PCI Express port fails to train at the second frequency.
 26. The method of claim 24, further comprising: completing link negotiation if the PCI Express port trains at the second frequency.
 27. The method of claim 19, wherein the first frequency is 2.5 gigahertz.
 28. The method of claim 19, wherein the second frequency is less than the first frequency. 